<?php

/**
 * Represents a field container which can iteratively process nested fields, converting it into a fieldset
 */
interface UserFormsFieldContainer {

	/**
	 * Process the next field in the list, returning the container to add the next field to.
	 *
	 * @param EditableFormField $field
	 * @return EditableContainerField
	 */
	public function processNext(EditableFormField $field);

	/**
	 * Set the parent
	 *
	 * @param UserFormsFieldContainer $parent
	 * @return $this
	 */
	public function setParent(UserFormsFieldContainer $parent);

	/**
	 * Get the parent
	 *
	 * @return UserFormsFieldContainer
	 */
	public function getParent();
}
